From patterns to frameworks to parallel programs
نویسندگان
چکیده
Object-oriented programming, design patterns, and frameworks are abstraction techniques that have been used to reduce the complexity of sequential programming. This paper describes our approach of applying these techniques to the more difficult domain of parallel programming. We combine these three abstraction techniques with a fourth kind of abstraction, programming layers. The result is the Parallel Design Patterns (PDP) process, a new approach to parallel programming that better matches the needs of parallel programmers. The programmer starts by selecting a parallel design pattern that matches the structure of the target application. The system presents the programmer with a pattern template that includes several parameters that can be set to match the requirements of the specific application. After the programmer selects the domain-specific parameters of the pattern template, the system generates a custom framework that encapsulates all of the parallel structure, including synchronization and communication code. The generated code serves as the highest of three layers of application code. At this layer, parallel structure correctness is guaranteed. Lower layers are used only for performance tuning to make the code as efficient as necessary. In addition to the PDP process, this paper briefly describes a parallel programming system called CO2P3S that implements the process. We use two example applications to illustrate the process and the CO2P3S system.
منابع مشابه
Object-Oriented Pattern-Based Parallel Programming with Automatically Generated Frameworks
The CO2P3S parallel programming system uses design patterns and object–oriented programming to reduce the complexities of parallel programming. The system generates correct frameworks from pattern template specifications and provides a layered programming model to address both the problems of correctness and openness. This paper describes the highest level of abstraction in CO2P3S, using two ex...
متن کاملGenerating Parallel Programs from the Wavefront Design Pattern
Object-oriented programming, design patterns, and frameworks are common techniques that have been used to reduce the complexity of sequential programming. We have applied these techniques to the more difficult domain of parallel programming. This paper describes CO2P3S, a pattern-based parallel programming system that generates parallel programs from parallel design patterns. We demonstrate CO2...
متن کاملPALLAS: Mapping Applications onto Manycore
Parallel programming using the current state-of-the-art in software engineering techniques is hard. Expertise in parallel programming is necessary to deliver good performance in applications; however, it is very common that domain experts lack the requisite expertise in parallel programming. In order to drive the computer science research toward effectively using the available parallel hardware...
متن کاملدگرگونی سیمای سلامت در ایران
Background and objectives: Data on transitions in health status are among the most important types of information used for promotion of health and social development. Health transition comprises two elements: demographic and epidemiologic transition. This paper depicts the health transition in I.R. Iran over the last few decades. Methods: We used demographic data gathered over the last 45 ye...
متن کاملRuntime Support for Dynamic Skeletons Implementation
Algorithmic skeletons have proved to be a good solution to the problem of implementing parallel applications with specify communication structures. They define the overall structure of the computation, hiding the complex communication details. Nowadays, the different frameworks available offer a fixed set of skeletons. The programmer can implement efficient programs if the computation and commu...
متن کاملTaskUniVerse: A Task-Based Unified Interface for Versatile Parallel Execution
Task based parallel programming has shown competitive outcomes in many aspects of parallel programming such as efficiency, performance, productivity and scalability. Different approaches are used by different software development frameworks to provide these outcomes to the programmer, while making the underlying hardware architecture transparent to her. However, since programs are not portable ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Parallel Computing
دوره 28 شماره
صفحات -
تاریخ انتشار 2002